#ifndef VIEWER_ARCROLL_H
#define VIEWER_ARCROLL_H
#include<Viewer_World_Manager/Viewer_World_Manager.h>
#include<Viewer_Interpreter/Viewer_OpenGL_Interpreter.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Viewer_Arcroll
{
    float* old_mouse_coord;
    Viewer_Something* axis;
    Viewer_Something* vs;
    Viewer_Something* vs_txt;
	Viewer_Camera*mc;
    Viewer_World* vw;
    Viewer_Opengl_Interpreter* voi;
    Node* disappear_somethings; 

    void* prop;
}Viewer_Arcroll;
static inline void viewer_arcroll_init(Viewer_Arcroll*va)
{
    va->old_mouse_coord=(float*)malloc(sizeof(float)*2);
    va->axis=NULL;
    va->vs=NULL;
    va->vs_txt=NULL;
    va->mc=0;
    va->vw=NULL;
    va->disappear_somethings=NULL;
    va->prop=NULL;
}
void viewer_Arcroll_cursor_position_callback(Viewer_Intera*);
void viewer_Arcroll_mouse_button_callback(Viewer_Intera*);
void viewer_Arcroll_framebuffer_size_callback(Viewer_Intera*);
void viewer_Arcroll_key_callback(Viewer_Intera*);
void viewer_Arcroll_scroll_callback(Viewer_Intera*,double,double);
void viewer_Arcroll_char_callback(Viewer_Intera*vi ,unsigned int c);
//void viewer_Arcroll_drop_callback(Viewer_Intera* vi);


Viewer_Arcroll*  add_default_somethings(Viewer_World* vw);
// void test_show_mesh_cells(Viewer_World* vw,Mesh*m);
#ifdef __cplusplus
}
#endif

#endif
